public class Leilao implements ILeilao{

	String descricao;
	private double valor;
	IUsuario vendedor;

	public Leilao (String descricao, double valor, IUsuario vendedor){
		this.descricao = descricao;
		
		if (valor < 0) System.out.println ("Valor invalido!!!");		
		else this.valor = valor;

		this.vendedor = vendedor;
	}

	public double getValorAtual(){
		return this.valor;
	}
	
	public void setValor (double valor){
		
		this.valor = valor;
	}

	public String getDescricao(){
		return this.descricao;
	}

	public void setDescricao (String descricao){
		this.descricao = descricao;
	}

	public void lance (double valor, IUsuario usuario) throws Exception{

		if (valor > 0){
			this.valor += valor;
			System.out.println("O lance atual eh de: R$"+this.valor+" feito por "+usuario.getEmail());
		}
		else{ throw new Exception ("\n---> Valor invalido!!! Por favor forneca um lance maior que o atual! <---\n");}

	}		  

	public boolean finalizaLeilao(IUsuario usuario){
		System.out.println ("\nO "+this.descricao+" foi finalizado com lance final de R$"+this.valor+"\nVencedor: "+usuario.getEmail());
		
		if (usuario.getConta().getSaldo() >= this.valor){
			usuario.getConta().debitar(this.valor);

			IEnvioEmail envioEmail = new EnvioEmail();
			envioEmail.enviar(usuario.getEmail()); 

			return true;
		}
		else return false;
						
		
		/*IEnvioEmail envioEmail = new EnvioEmail();

		envioEmail.enviar(usuario.getEmail()); 

		

		return true;*/
	}

	public IUsuario getVendedor(){	
		return this.vendedor;
	}
}
